Early in the evolution of computers and computer systems, even the largest computer systems were designed to run each program to completion before running a next program. The running program generally had full access to any and all system resources, including system memory, the entire available computing bandwidth provided by the processor, and any and all peripheral devices attached to the computer system, including mass-storage devices and input/output devices. Time-sharing operating systems were subsequently developed to allow multiple programs to run concurrently within a computer system and to begin to partition system resources to prevent programs from easily interfering with other programs' stored data and use of computational resources. Eventually, a wide variety of different types of computer-system partitioning were developed, to facilitate concurrent use of computer-system resources by multiple operating systems and very large numbers of users and application programs.
One type of computer-system partition is referred to as a “hard partition.” Hard partitions are generally characterized by relatively static, hardware-based partitioning of a computer system. Distributed computer systems may, for example, be partitioned into single computers, or groups of computers, controlled by one or more operating systems or distributed operating systems for use by a particular set or class of users. A second type of computer-system partition is referred to as a “soft partition.” Soft partitions are characterized by dynamic, software-based or firmware-based partitioning of both individual computers and groups of computers. A first type of soft partition is generally referred to as a virtual machine, created and maintained by a virtual-machine monitor. A virtual-machine monitor is a relatively complex control program that resides, in a common hierarchical abstraction of a computer system, between the hardware level and the operating system level. Virtual-machine monitors have full access to system resources and may include complex routines that use the system resources to carry out complex tasks on behalf of computer-system administrators and other privileged users that can issue commands to the virtual-machine monitor.
A second type of soft partition is referred to as a “virtual partition” or “VPAR.” While a virtual-machine monitor is a generally persistent layer that continuously carries out tasks on behalf of guest operating systems and application programs running above the guest operating systems, a virtual-partition monitor, or “VPAR monitor,” is generally implemented in firmware or as a combination of firmware and a very thin software layer to divide or partition resources within a single machine into hardware-based VPARs. An operating system can be installed and launched to run on each VPAR and to support multiple application programs. The VPAR monitor is primarily concerned with allocation of hardware resources, installation of an operating system, and launching of an operating system, and is generally inactive for much of the time during which the operating system, and application programs running above the operating systems, execute.
Modern virtual-machine monitors provide a variety of utilities and features, including the ability to move an active guest operating system between physical machines. Currently, active VPARs are tied to a specific machine, and VPAR monitors generally provide only a very small, rudimentary set of virtual-console commands that allow VPARs to be created, operating systems to be launched, and VPARs to be destroyed. However, VPARs generally provide much more efficient use of hardware resources by overlying operating systems than virtual monitors provide to guest operating systems. Thus, there are relatively stark tradeoffs between functionality and computational efficiency with regard to use of virtual monitors and VPARs. Computer manufacturers and vendors, and developers and vendors of operating systems and other support programs for computer systems, continue to develop both virtual-machine monitors and VPAR monitors to address disparities in functionality and efficiency between virtual machines and VPARs.